package com.itheima.d1_arrays;

import java.util.Arrays;
import java.util.function.IntToDoubleFunction;

/**
 * 目标：掌握Arrays类的常用方法。
 */
public class ArraysTest1 {
    public static void main(String[] args) {
        int[] arr = {10,20,40,50,80,23};
        // 1、public static String toString(类型[] arr): 返回数组的内容
        String string = Arrays.toString(arr);
        System.out.println(string);

        // 2、public static 类型[] copyOfRange(类型[] arr, 起始索引, 结束索引) ：拷贝数组（指定范围，包前不包后）
        int[] ints = Arrays.copyOfRange(arr, 1, 4);
        System.out.println(Arrays.toString(ints));

        // 3、public static copyOf(类型[] arr, int newLength)：拷贝数组，可以指定新数组的长度。
        int[] ints1 = Arrays.copyOf(arr, 8);
        System.out.println(Arrays.toString(ints1));


        // 4、public static setAll(double[] array, IntToDoubleFunction generator)：把数组中的原数据改为新数据又存进去。
        double[] prices = {99.8, 128, 100};
        Arrays.setAll(prices, new IntToDoubleFunction() {
            @Override
            public double applyAsDouble(int value) {
                return prices[value]*0.8;
            }
        });
        System.out.println(Arrays.toString(prices));
//        Arrays.setAll(prices, new IntToDoubleFunction() {
//            @Override
//            public double applyAsDouble(int value) {
//                return prices[value]*0.8;
//            }
//        });
        Arrays.setAll(prices, value-> prices[value]*0.8);//替换元素新内容

        // 5、public static void sort(类型[] arr)：对数组进行排序(默认是升序排序)
        //对数组进行排序
        Arrays.sort(arr);
        System.out.println(Arrays.toString(arr));
        Arrays.sort(prices);
    }
}
